Dim wdDoc As Microsoft.Office.Interop.Word.Document = DirectCast(GetObject(DokutName), Microsoft.Office.Interop.Word.Document)
Diese Anweisung referenziert Dir direkt das Document. (!)
Wenn Du diese Referenz hast, kannst Du direct wdDoc/das Dokument manipulieren.
Wenn es bereits eine Word-Instanz mit diesem Dokument gibt, bekommst Du diese in die Objektvariable wdDoc referenziert.
Wenn es noch keine Word-Instanz mit diesem Dokument gibt, wird eine erzeugt, das Dokument geöffnet und in die Objektvariable wdDdoc referenziert.
Achtung:;
Im Erfolgsfall hast mit wdDoc nicht die Collection, sondern bereits das begehrte Dokument referenziert (!)
Du mus dann also nichtmehr durch die Documents-Auflistung schleifen, sondern kannst IsDocumentOpen gleich True zuweisen.
Folgende Fragen müssen Dich foglich beschäftigen, ob den Programmablauf zu formulieren:
a) Kann es ein, dass Word bereits offen ist?
b) Kann es ein, dass Word mit mehreren Instanzen geöffnet ist?
zu a)
Wenn ja -> GetObject()
Wenn nein -> CreateObject()
zu b)
Wenn ja -> GetObject("PfadZurDateiNotwendigUmdieRichtigeInstanzZuBekommen") '*** hierbei würde das Loopen wegfallen
Wenn ja (aber Pfad unbekannt, nur Dateiname bekannt) -> ROT auslesen und richtige Instanz identifizieren '*** womöglich jede Instanz abarbeiten und die Documents-Auflistung jener Instanz durchloopen
|